#ifndef COLOR_H_
#define COLOR_H_

namespace Properties
{
	class Color
	{
		float m_r;
		float m_g;
		float m_b;

	public:

		Color():m_r(0.0),m_g(0.0),m_b(0.0){}
		Color( float _r, float _g, float _b):m_r(_r),m_g(_g),m_b(_b){}


		inline float r() const { return m_r; };
		inline float g() const { return m_g; };
		inline float b() const { return m_b; };

		inline void r( float _r) { m_r = _r; };
		inline void g( float _g) { m_g = _g; };
		inline void b( float _b) { m_b = _b; };
	};

	inline Color operator+( Color _a, Color _b )
	{
		return Color( _a.r() + _b.r(),
			          _a.g() + _b.g(),
					  _a.b() + _b.b() );
	}

	inline Color operator-( Color _a, Color _b )
	{
		return Color( _a.r() - _b.r(),
			          _a.g() - _b.g(),
					  _a.b() - _b.b() );
	}

	inline Color operator*( const Color& _a, const Color& _b )
	{
		return Color( _a.r() * _b.r(),
			          _a.g() * _b.g(),
					  _a.b() * _b.b() );
	}
}


#endif